home *** CD-ROM | disk | FTP | other *** search
/ IRIX Installation Tools & Overlays 2002 November / SGI IRIX Installation Tools & Overlays 2002 November - Disc 3.iso / relnotes / dmedia_dev / ch09.z / ch09
Text File  |  2002-10-15  |  15KB  |  397 lines

  1.  
  2.  
  3.  
  4.                                   - 1 -
  5.  
  6.  
  7.  
  8.        9.  _M_o_v_i_e__L_i_b_r_a_r_y
  9.  
  10.        This chapter lists information about the Movie Library
  11.        programming interface included IRIS Digital Media
  12.        Development Environment.  It includes changes, additions,
  13.        and bug fixes since the IRIX 5.3 releases, known problems
  14.        and workarounds.
  15.  
  16.        The IRIS Movie Library is a application programming
  17.        interface for the creation of programs which read, write,
  18.        and play movies. A movie is a file containing sequences of
  19.        images and/or audio. A movie is a useful display method for
  20.        graphical sequences which cannot be rendered in real time or
  21.        for any sequenced image data. The Movie Library currently
  22.        provides support for the native Silicon Graphics movie file
  23.        format, QuickTime(*) file format, MPEG I Systems Layer, and
  24.        the AVI format, and DIF format (DVC/DVCPro raw data).  Not
  25.        all of the movie library features are available with all
  26.        file formats.
  27.  
  28.        The main features of the Movie Library (MV) are:
  29.  
  30.           +o Ability to read, write, and play movie files.
  31.  
  32.           +o High level interface to image data compression.
  33.  
  34.           +o Support for several file formats, including
  35.  
  36.                     Apple QuickTime(*)
  37.  
  38.                     AVI
  39.  
  40.                     DIF (Raw DV) files
  41.  
  42.                     MPEG-1 system bitstreams
  43.  
  44.                     MPEG-1 video bitstreams
  45.  
  46.                     SGI Movie
  47.  
  48.           +o File-format independent API.
  49.  
  50.           +o Asynchronous playback support with flexible controls.
  51.  
  52.           +o Basic editing features for image and audio sequences.
  53.  
  54.           +o Support for embedded movies in applications software.
  55.  
  56.        The Movie Library is composed of two high-level DSO's,
  57.        _l_i_b_m_o_v_i_e_f_i_l_e._s_o and _l_i_b_m_o_v_i_e_p_l_a_y._s_o, which contain the
  58.        public movie API calls. Debugging versions of the library
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                   - 2 -
  71.  
  72.  
  73.  
  74.        are available as well (/_u_s_r/_l_i_b/_d_e_b_u_g/_l_i_b_m_o_v_i_e_f_i_l_e._s_o and
  75.        /_u_s_r/_l_i_b/_d_e_b_u_g/_l_i_b_m_o_v_i_e_p_l_a_y._s_o).  They perform extra error
  76.        checking on all parameters passed into the library and
  77.        provide more extensive feedback to the programmer as to what
  78.        might be wrong.  However, they also incur a substantial
  79.        overhead and it is not recommended that they be for anything
  80.        other than testing. They may be used by setting
  81.        LD_LIBRARY_PATH (or LD_LIBRARYN32_PATH) to point at
  82.        /usr/lib/debug (or /usr/lib32/debug) and running the
  83.        application. See rrrrlllldddd((((1111)))) for more information.
  84.  
  85.        For additional information about the Movie Library see the
  86.        overview manual page mmmmvvvvIIIInnnnttttrrrroooo(3mv).
  87.  
  88.  
  89.  
  90.        9.1  _P_r_o_g_r_a_m_m_i_n_g__E_x_a_m_p_l_e_s
  91.  
  92.        A number of example programs which provide coverage of many
  93.        of the calls in the library are also included. They are
  94.        contained in the dmedia_dev.src.examples portion of the
  95.        install image and get installed in
  96.        /usr/share/src/dmedia/movie. A README file there explains
  97.        each of the example programs.
  98.  
  99.  
  100.        9.2  _C_h_a_n_g_e_s__a_n_d__A_d_d_i_t_i_o_n_s
  101.  
  102.        This section lists changes and additions made to the Movie
  103.        Library since the release of IRIX 5.3.
  104.  
  105.        IRIX 6.3 introduced a new version of the Movie Library. This
  106.        new verion is composed of two high-level DSO's,
  107.        _l_i_b_m_o_v_i_e_f_i_l_e._s_o and _l_i_b_m_o_v_i_e_p_l_a_y._s_o, which contain the
  108.        public movie API calls, together with a few private
  109.        rendering and display port DSO modules (see
  110.        /_u_s_r/_l_i_b/_d_m_e_d_i_a/_m_o_v_i_e/*._s_o) which are loaded internally by
  111.        the movie playback DSO. Applications may link with either
  112.        "-lmovieplay -lmoviefile" or just "-lmoviefile" depending on
  113.        their requirements. Applications do not link directly with
  114.        the low-level rendering/display modules. Applications built
  115.        using versions of _l_i_b_m_o_v_i_e._a or _l_i_b_m_o_v_i_e_G_L._a from previous
  116.        IRIX releases should continue to operate correctly without
  117.        recompile on 6.3 and later releases.
  118.  
  119.           +o IRIX 6.5.14 adds to the support for reading of
  120.             QuickTime None movie files which have a depth of 1, 2,
  121.             4 and 8 bit color and 4, 8 bit grey scale.
  122.  
  123.           +o IRIX 6.5.14 adds support for reading of QuickTime BMP
  124.             movie files which have a depth of 1, 2, 4, 8, 24 and 32
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                   - 3 -
  137.  
  138.  
  139.  
  140.             color and 4, 8 bit grey scale.
  141.  
  142.           +o IRIX 6.5.14 adds support for reading of QuickTime
  143.             Planar RGB movie files which have a depth of 8, 24, and
  144.             32 color and 8 bit grey scale.
  145.  
  146.           +o IRIX 6.5.12 adds support for reading of 1, 2, 4, 8, 16
  147.             and 24 bit uncompressed AVI files. Originally only 32
  148.             bit uncompressed AVI files were supported.
  149.  
  150.           +o IRIX 6.5.12 adds support for reading of Microsoft RLE
  151.             compressed AVI files.
  152.  
  153.           +o IRIX 6.5.12 adds support to allow reading of compressed
  154.             header Quicktime(*) movie files.
  155.  
  156.           +o For Irix 6.5, the movie library has been enhanced to
  157.             support certain common kinds of compressed audio in
  158.             QuickTime(*) movies. QuickTime(*) movies with IMA4
  159.             (also known as IMA4:1) compressed audio tracks are now
  160.             readable, as are DV-Audio compressed tracks. (DV-Audio
  161.             compression is also supported in DIF streams.) Note
  162.             that IMA4 is supported read-only (ie, decompress-only).
  163.             DV-Audio compressed data can be created only when
  164.             exporting a DIF stream using mmmmvvvvEEEExxxxppppoooorrrrttttFFFFllllaaaatttttttteeeennnneeeeddddFFFFiiiilllleeee.
  165.  
  166.           +o Standard QuickTime(*) Motion JPEG-A (MJPEG-A) field
  167.             based compression is now supported in Irix 6.5 (it was
  168.             available in 6.3 with appropriate patches as well).
  169.             MJPEG-A is a powerful format because it is cross-
  170.             platform, so that the same movie can be played on
  171.             SGI's, Mac's and PC's in realtime, with appropriate
  172.             hardware, such as the O2's built in ICE hardware.
  173.  
  174.           +o In Irix 6.5, a new function has been added to allow
  175.             simplified generation of movies which are optimized for
  176.             playback. Please see man mmmmvvvvEEEExxxxppppoooorrrrttttFFFFllllaaaatttttttteeeennnneeeeddddFFFFiiiilllleeee.
  177.  
  178.           +o The movie library supports more hardware for playing
  179.             back movies, such as Cosmo Compress, O2's built in ICE,
  180.             Impact Compression, etc.
  181.  
  182.           +o Several functions have been added to the Movie Library
  183.             to provide time based access to and editing of movie
  184.             data in addition to the existing frame based calls.
  185.             See the "FRAME, TIME and TIMESCALE" section of
  186.             mmmmvvvvIIIInnnnttttrrrroooo(3dm) for more details.
  187.  
  188.           +o In 5.3 mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) would return different formats
  189.             (eg, pixel packing, orientation, etc), depending upon
  190.             how the data was stored in the file. Now
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                                   - 4 -
  203.  
  204.  
  205.  
  206.             mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) ALWAYS returns the same pixel
  207.             formats.
  208.  
  209.             mmmmvvvvIIIInnnnsssseeeerrrrttttFFFFrrrraaaammmmeeeessss(3dm) used to expect its input format
  210.             (eg, pixel packing orientation, etc) to be correlated
  211.             to the file format/codec. Now it ALWAYS expects data to
  212.             be in the same format.
  213.  
  214.             These changes were made to prevent requiring every
  215.             application to understand how to perform image
  216.             conversions.
  217.  
  218.             See the man page for additional information about
  219.             mmmmvvvvRRRReeeeaaaaddddFFFFrrrraaaammmmeeeessss(3dm) and mmmmvvvvIIIInnnnsssseeeerrrrttttFFFFrrrraaaammmmeeeessss(3dm).
  220.  
  221.           +o The QuickTime(*) Compressor Library product no longer
  222.             exists.  Applications that link with _l_i_b_m_o_v_i_e._s_o will
  223.             now be able to read and create movies compressed with
  224.             the Apple Animation and Apple Video compression
  225.             algorithms without linking with _l_i_b_q_t._a or calling
  226.             mmmmvvvvIIIInnnniiiittttQQQQuuuuiiiicccckkkkTTTTiiiimmmmeeee. Applications will also be able to read
  227.             and write Cinepak (Compact Video) movies.  The movie
  228.             library will also recognize and play back QuickTime(*)
  229.             movies compressed with Indeo(tm) compression, and
  230.             DVC/DVCPro compression.
  231.  
  232.           +o The Movie Library now supports multiple audio and video
  233.             tracks in QuickTime(*) files.  New calls allow the
  234.             programmer to find the number of tracks and retrieve
  235.             track handles on each one.  Multiple tracks of a given
  236.             medium may be played simultaneously or sequentially
  237.             under program control.
  238.  
  239.           +o The Movie Library has been extended to allow external
  240.             data references for tracks.  A track that contains an
  241.             external data reference has data that resides in a
  242.             separate file.  The Movie Library access this file as
  243.             necessary during movie editing and playback.
  244.  
  245.           +o The Movie Library no longer requires that each frame in
  246.             an image track have the same duration.  A sequence of
  247.             an image track may be scaled by an application to
  248.             increase or shorten its playback time.
  249.  
  250.           +o In general, many more forms of QuickTime(*) movies are
  251.             recognized.
  252.  
  253.           +o Read only support for MPEG I Systems streams is new in
  254.             this version of the Movie Library.  MPEG movies may be
  255.             played using the Movie Library's playback calls.
  256.             However, most calls that manipulate movie data, such as
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                                   - 5 -
  269.  
  270.  
  271.  
  272.             editing or reading compressed images, are not supported
  273.             for MPEG files.
  274.  
  275.           +o AVI support has been added to the movie library.  The
  276.             compression types currently supported for AVI files are
  277.             Cinepak, Indeo, and uncompressed.
  278.  
  279.           +o The Movie Library now supports controlling the image
  280.             compression quality, bitrate, and keyframe frequency of
  281.             data in an image track.  These qualities can be
  282.             controlled by setting the appropriate DMparams when the
  283.             image track is created.  See the mmmmvvvvAAAAddddddddTTTTrrrraaaacccckkkk(3dm) man
  284.             page for more details.
  285.  
  286.           +o The Movie Library now supports software scaling of the
  287.             volume of a playing movie.  See
  288.             mmmmvvvvGGGGeeeettttMMMMoooovvvviiiieeeePPPPllllaaaayyyyVVVVoooolllluuuummmmeeee(3dm) for more details.
  289.  
  290.  
  291.  
  292.        9.3  _B_u_g__F_i_x_e_s
  293.  
  294.        This sections lists some of the known bugs that have been
  295.        fixed since 5.3
  296.  
  297.           +o Bug #610693: As of Irix 6.5.1, uncompressed frame-based
  298.             (ie, interleaved-fields) uncompressed 8-bit YUV422
  299.             QuickTime(*) movies generated by the SGI movie library
  300.             will now be readable on other platforms which support
  301.             QuickTime(*) 3.0. Note that these movies may not play
  302.             back correctly on older Irix releases, but movies
  303.             generated on older Irix releases will be playable on
  304.             Irix 6.5.1.
  305.  
  306.           +o The problems many users ran into with upside down and
  307.             non-color converted uncompressed QuickTime(*) movies
  308.             are solved by the fact that mvReadFrames now always
  309.             returns XBGR, bottom-to-top, non interlaced data.
  310.  
  311.           +o Stereo audio in QuickTime(*) files is now handled
  312.             correctly.
  313.  
  314.           +o The Movie Library's playback engine has been modified
  315.             to pick up edits made to a movie.  For example, if
  316.             frames are added to a movie that's been bound to a
  317.             window but is currently not playing the playback
  318.             instance will pick up the change and play all the
  319.             frames of the movie.  It should be noted that no edits
  320.             should be made to the movie while the movie is
  321.             currently playing.
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                                   - 6 -
  335.  
  336.  
  337.  
  338.           +o The Movie Library now supports playing back tracks of
  339.             different lengths.  For example, playing a movie with a
  340.             video track that is longer than its audio track will
  341.             play all the frames of the video track even after the
  342.             audio has stopped playing.
  343.  
  344.           +o Calling mmmmvvvvSSSSttttoooopppp as the playback engine reached the last
  345.             frame of a movie could result in a deadlock condition
  346.             in the 5.3 Movie Library.  This can no longer happen.
  347.  
  348.  
  349.        9.4  _K_n_o_w_n__P_r_o_b_l_e_m_s__a_n_d__W_o_r_k_a_r_o_u_n_d_s
  350.  
  351.  
  352.        This section lists some of the known problems with the Movie
  353.        Library.
  354.  
  355.           +o The SGI movie file format used by the Movie Library is
  356.             different from that used prior to the release of Irix
  357.             5.2.  However, movies in the older format can still be
  358.             read and played by the Movie Library. Only the current
  359.             format can be written.
  360.  
  361.           +o If the machine on which you are playing a movie cannot
  362.             handle the frame rate specified, the audio may sound
  363.             choppy.
  364.  
  365.           +o Setting the play speed of the movie to 0 with
  366.             mvSetPlaySpeed() will cause the movie library to crash.
  367.             The workaround for this is to call mvStop() instead of
  368.             setting the play speed to 0.
  369.  
  370.           +o If a QuickTime(*) movie contains complex elements that
  371.             the Movie Library does not fully support, the movie
  372.             will be opened read only.  The movie must be copied to
  373.             create a movie that can be edited.
  374.  
  375.        (*) QuickTime is a registered trademark of Apple Computer,
  376.        Inc.
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.